home *** CD-ROM | disk | FTP | other *** search
- This article originally appeared in a slightly different form at
- http://aarongiles.com. You should read this if you are used to how
- MAME's video system worked prior to 0.107 and you want to understand
- how you should configure MAME with the new rendering system in place.
-
-
- The New Video Landscape
-
- Since its inception 9 years ago, MAMEÆs video system has defaulted to
- a mode where it tries to change resolutions on you. And since the
- first port of the core to Windows 5 years ago, it has defaulted to
- using your graphics card to stretch the video to that resolution.
-
- IÆm sure a lot of you out there have taken a lot of time to tweak the
- current set of video options to make them work the way you like. But
- every once in a while, you need to take a step back and re-evaluate
- the situation. The current video system has been in place for 5 years
- now without much substantial change. And with the recent rewrite,
- youÆre almost certainly going to want to rethink the way you have
- things configured.
-
- At the highest level, there are really three different ways you can
- configure the new system. Placing yourself into one of these three
- categories will help you get the initial settings right. From there,
- you can tweak with the settings to figure out what works best.
-
-
- Category 1: Bells and whistles. People who fall into this category
- would include anyone with a modern system and a decent video card
- (decent in this context means at least 16MB of VRAM and built in the
- last 5 years or so ù weÆre not talking cutting edge here). Any decent
- video card will be able to render the simple MAME graphics at pretty
- much any resolution without breaking a sweat. Configure your desktop
- to the video mode you want (preferably something high like 1024╫768
- or greater with a high refresh rate, unless you are running on a
- fixed-mode LCD, in which case just match what your LCD panel is),
- and tell MAME to leave the resolution alone. In this day and age,
- there is little reason to switch resolutions at all, unless you
- fall into Category 3, below. In this mode, you will have full access
- to artwork options, and youÆll get your artwork scaled to full
- resolution and with full alpha blending effects. Vector games will
- look crisp, you can use decent fonts, and you can see a whole lot
- more of the world when using the graphics/tilemap viewer. This mode
- uses Direct3D, so you should configure yourself like this:
-
- -video d3d -noswitchres [-triplebuffer] [-nofilter]
-
- The -noswitchres option tells MAME to just run at the current
- resolution. Although you can let MAME pick a resolution for you, it
- doesnÆt really make much sense in D3D mode, and in fact I may even
- remove that feature altogether. To avoid tearing artifacts, I
- recommend using the -triplebuffer option as well. Just make sure your
- monitorÆs refresh rate is higher than the game you are running. If
- you dislike the blurry look of the graphics, you can specify the
- -nofilter option to disable bilinear filtering, though that will
- produce blocky artifacts. Alternatively, you can use the -prescale
- option which is described at the end of this article.
-
-
- Category 2: Like the old days. I really didnÆt even want to support
- this mode at all, but certain vocal MAMEdevs would have skinned me
- alive otherwise. People who fall into this category include those who
- have weak systems that worked fine with previous versions of MAME,
- but who donÆt run well with Direct3D rendering. (Note that just
- because Space Invaders runs unthrottled at 2000fps with DirectDraw
- and 1000fps with Direct3D doesnÆt mean that Direct3D is going to be
- a serious issue when playing at a regular 60fps, so if youÆre unsure,
- give the Direct3D route a try for a while.) In this mode, MAME will
- draw the game screen and artwork at the gameÆs resolution, just like
- it did in MAME 0.106 and earlier; however, some artwork options,
- such as -artcrop, wonÆt work as you might expect, and some alpha
- blending artwork modes (specifically overlays) will operate with a
- performance penality. MAME will then use your video card to stretch
- the video to the proper aspect ratio.
-
- -video ddraw -hwstretch [-switchres] [-triplebuffer]
-
- The -switchres is optional here. If your video card is really ancient
- and struggles expanding the screen to fit your desktop resolution,
- you might want to turn it on. Again, to avoid tearing artifacts, I
- recommend using the -triplebuffer option as well, but make sure your
- monitorÆs refresh rate is higher than the game you are running
- (-switchres will do that for you if you use it). If your video card
- produces blurry pixels which you donÆt like, try the -prescale option
- described at the end of this article.
-
-
- Category 3: Anal video mode types. These are the guys who have
- generally built their own cabinets and set them up with a CRT display
- where they have several dozen carefully hand-tweaked video modes that
- approximate the original video modes the games ran at. They want MAME
- to pick that hand-tweaked mode and use it, drawing one pixel on the
- screen for each pixel in the original game. They donÆt give a whit
- about artwork or anything other than the raw pixels going to the
- right place. Fortunately, you can still configure MAME for this case
- as well:
-
- -video ddraw -nohwstretch -switchres [-triplebuffer]
-
- Obviously in this case, the -switchres is required. You also want to
- disable hardware stretching, otherwise you wonÆt get that ôperfectö
- 1:1 pixel mapping. Triple buffering may or may not help.
-
-
- So, I recommend starting with these initial options and then tweaking
- from there. One additional option you might want to try in
- combination with the above is the -prescale option. -prescale takes
- an integer parameter from 1 to 8, and specifies a magnification
- amount by which the screen pixels are expanded before they are drawn
- to the screen. Why is this useful? And how much of a performance
- impact does it have? Well, that depends on the mode you are running
- in.
-
- If you are running in Category 1 (-video d3d), then -prescale will
- use your video card to scale the game graphics up before rendering
- them to the screen. Depending on the video card, this is usually a
- small performance hit, but not too significant. The benefit is that
- each prescale factor reduces the blurriness of the pixels.
- -prescale 1 is the default, which does no scaling. -prescale 2 will
- double each pixel, -prescale 3 will triple each pixel, etc. For my
- money, -prescale 2 is sufficient, but people with super high
- resolution displays claim that larger -prescale factors work even
- better.
-
- If you are running in Category 2 (-video ddraw -hwstretch), then
- -prescale will cause MAME to compose the screen graphics at the
- specified scale factor. This is unfortunately done in software, but
- carries the benefit that artwork, fonts, and the graphics viewer can
- take advantage of the additional resolution to produce nicer results.
- The end effect is that you will get less blurry pixels, just like the
- Category 1 case, plus higher quality artwork, fonts, and more visible
- area in the graphics viewer.
-
- If you are running in Category 3 (-video ddraw -nohwstretch), then
- -prescale will cause MAME to pick a video mode that is the prescale
- factor times the raw screen resolution, and then MAME will, in
- software, compose the screen graphics at the specified scale factor.
- This has all the advantages of the Category 2 case, except that since
- there wasnÆt any pixel blurring to begin with, there is no additional
- crispness that comes about as a result.
-
- Finally, you may be wondering about effects (and yes, scanlines are
- an ôeffectö). Effects are no longer hard-coded into the system.
- Rather, you can provide a PNG file in the artwork directory that will
- be loaded and overlaid on top of screen bitmaps. See the description
- of -effect in windows.txt for more details.
-